package br.com.bco.web.page.ocorrencia;

import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;

import br.com.bco.controle.OcorrenciaControl;
import br.com.bco.negocio.Ocorrencia;
import br.com.bco.negocio.exception.NegocioException;
import br.com.bco.web.page.AbstractPage;

public class InserirOcorrencia extends AbstractPage {

    private final Ocorrencia ocorrencia = new Ocorrencia();

    private TextField descricao;
    private TextArea observacao;

    @SpringBean
    private OcorrenciaControl ocorrenciaControl;

    public InserirOcorrencia() {
        Form form = new Form("form", new CompoundPropertyModel(ocorrencia));
        adicionarCampos(form);
        adicionarBotoes(form);
        add(form);
    }

    private void adicionarCampos(Form form) {

        descricao = new TextField("descricao");
        observacao = new TextArea("observacao");
        form.add(descricao);
        form.add(observacao);
    }

    private void adicionarBotoes(Form form) {
        Button btnGravar = new Button("btnGravar", new Model()) {
            @Override
            public void onSubmit() {
                try {
                    ocorrenciaControl.inserir(ocorrencia);
                } catch (NegocioException e) {
                    System.out.println(e.getMensagens().get(0));
                }
                setResponsePage(InserirOcorrencia.class);
            }
        };
        form.add(btnGravar);
    }

    @Override
    public String getTitulo() {
        return "Inserir Ocorrência";
    }

}
